package com.newtouch.bxzs.policy.model.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 保单BO类
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/1/7 10:57</td>
 * <td>linhongxi</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author linhongxi
 * @version 1.0.0
 * @since 1.0.0
 */
/*lombok插件*/
@Data
@ApiModel(value = "PolicyBO",description = "个单详情BO")
public class PolicyBO implements Serializable {

    private static final long serialVersionUID = 7199880701997405864L;
    @ApiModelProperty(value = "保单主险种名称 policyMainName ")
    private String policyMainInsuranceName;

    @ApiModelProperty(value = "累计保费 accumulatedPremium ")
    private BigDecimal accumulatedPremium;

    @ApiModelProperty(value = "保单号 policyNumber ")
    private String policyNumber;

    @ApiModelProperty(value = "投保单号 policyApplicationNumber")
    private String policyApplicationNumber;

    @ApiModelProperty(value = "投保日期 policyApplicationDate ")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private String policyApplicationDate;

    @ApiModelProperty(value = "承保日期 policyInsuredDate ")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private String policyInsuredDate;

    @ApiModelProperty(value = "保单状态 policyStatus ")
    private String policyStatus;

    @ApiModelProperty(value = "投保人姓名 policyHolderName")
    private String policyHolderName;

    @ApiModelProperty(value = "投保人性别 policyHolderGender ")
    private String policyHolderGender;

    @ApiModelProperty(value = "投保人证件类型 policyHolderCertificateType")
    private String policyHolderCertificateType;

    @ApiModelProperty(value = "投保人证件号码 policyHolderCertificateNumber")
    private String policyHolderCertificateNumber;

    @ApiModelProperty(value = "被保人姓名 insurederName")
    private String insurederName;

    @ApiModelProperty(value = "被保人性别 insurederGender")
    private String insurederGender;

    @ApiModelProperty(value = "被保人证件类型 insurederCertificateType")
    private String insurederCertificateType;

    @ApiModelProperty(value = "被保人证件号码 insurederCertificateNumber")
    private String insurederCertificateNumber;

    @ApiModelProperty(value = "受益人姓名 beneficiaryName ")
    private String beneficiaryName;

    @ApiModelProperty(value = "受益人性别 beneficiaryGender")
    private String beneficiarySex;

    @ApiModelProperty(value = "受益人证件类型 beneficiaryCertificateType")
    private String beneficiaryCertificateType;

    @ApiModelProperty(value = "受益人证件号码 beneficiaryCertificateNumber")
    private String beneficiaryCertificateNumber;

    @ApiModelProperty(value = "当期保费 currentPremium ")
    private BigDecimal currentPremium;

    @ApiModelProperty(value = "保额 insuredAmount ")
    private BigDecimal insuredAmount;

    @ApiModelProperty(value = "保额年期类型 insuredPeriodType ")
    private String insuredPeriodType;

    @ApiModelProperty(value = "保险期限 insuranceTerm ")
    private String insuranceTerm;

    @ApiModelProperty(value = "保险周期 insurancePeriod ")
    private String insurancePeriod;

    @ApiModelProperty(value = "保费缴费方式 premiumPaymentMethod ")
    private String premiumPaymentMethod;

    @ApiModelProperty(value = "缴费期数 paymentPeriodsNumber ")
    private String paymentPeriodsNumber;

    @ApiModelProperty(value = "保费缴费周期 premiumPaymentCycle ")
    private String premiumPaymentCycle;

    @ApiModelProperty(value = "自动续保 expirationPolicyFlag ")
    private boolean expirationPolicyFlag;

    @ApiModelProperty(value = "保单生效日期 policyEfficientDate ")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date policyEfficientDate;

    @ApiModelProperty(value = "保单终止日期 policyExpirationDate")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date policyExpirationDate;

    @ApiModelProperty(value = "附加险名称 additionalRisksName")
    private String additionalRisksName;

    @ApiModelProperty(value = "附加险当期保费 additionalRisksCurrentPremium")
    private BigDecimal additionalRisksCurrentPremium;

    @ApiModelProperty(value = "附加险保额 additionalRisksInsuredAmount")
    private BigDecimal additionalRisksInsuredAmount;

    @ApiModelProperty(value = "份数 copiesNumber")
    private Integer copiesNumber;

    @ApiModelProperty(value = "附加险年期类型 additionalRisksPeriodType")
    private String additionalRisksPeriodType;

    @ApiModelProperty(value = "附加险周期 additionalRisksPeriod")
    private int additionalRisksPeriod;

    @ApiModelProperty(value = "附加险缴费方式 additionalRisksPaymentMethod")
    private String additionalRisksPaymentMethod;

    @ApiModelProperty(value = "附加险缴费期数 additionalRisksPaymentPeriodsNumber")
    private Integer additionalRisksPaymentPeriodsNumber;

    @ApiModelProperty(value = "附加险缴费周期 additionalRisksPaymentCycle")
    private String additionalRisksPaymentCycle;

    @ApiModelProperty(value = "附加险生效日期 additionalRisksRenewalDate")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date additionalRisksRenewalDate;

    @ApiModelProperty(value = "附加险终止日期 additionalRisksRenewalStatus")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    private Date additionalRisksRenewalStatus;

    @ApiModelProperty(value = "被保人是否是本人 true:是本人 flase:不是本人")
    private boolean insurederFlag = false;

    @ApiModelProperty(value = "受益人是否是本人 additionalRisksPaymentCycle")
    private boolean beneficiaryFlag = false;

}
